package com.zusmart.core.proxy;

import java.lang.reflect.Method;

public abstract class ProxyFactoryForInterface implements ProxyFactory {

	@Override
	public final Object execute(ProxyChain proxyChain) throws Throwable {
		return this.execute(proxyChain.getTargetInstance(), proxyChain.getTargetMethod(), proxyChain.getTargetArguments());
	}

	protected abstract Object execute(Object targetInstance, Method targetMethod, Object[] targetArguments);

}